<html>
    <script>
        const p = new Promise((resolve,reject)=>{
            resolve('0 成功')
        })

        // const p2 = p.then(v=>{
        //     console.log('success',v)
        //     return p2
        // },r=>{
        //     console.log('fail',r)
        // })

        // //如果没有下面继续，node环境，控制台打印错误 / 游览器环境也直接报错

        // p2.then(v=>{
        //     console.log('success2',v)
        // },r=>{ //这里可以捕捉到错误 ‘TypeError: Chaining cycle detected for promise #<Promise>’
        //     console.log('---',typeof r)
        //     console.log('fail2',r)
        // })

        //测试
        // let pp = Promise.resolve(p)
        // console.log('是否相等',pp === p)
        

        // let pp = new Promise((resolve,reject)=>{
        //     resolve('p')
        // })
        
        // let p2 = pp.then(v=>{
        //     console.log('then',v)
        // },r=>{
        //     console.log('error',r)
        // })
        
        // let p3 = p2.finally(()=>{
        //     console.log('finally')
        //     return 'f'
        // })

        // console.log('p2 === p3',p2 === p3)

        
        // p3.then(v=>{
        //     console.log('then1',v)
        // },r=>{
        //     console.log('error1',r)
        // })


    new Promise((resolve,reject)=>{
        resolve('p')
    }).then(v=>{
        console.log('then',v)
        return '123'
    },r=>{
        console.log('error',r)
    }).finally(()=>{
        console.log('finally')
        // return new Promise((resolve,reject)=>{
        //     setTimeout(()=>{
        //         resolve('123')
        //     },1000)
        // })
    }).then(v=>{
        console.log('then1',v)
    },r=>{
        console.log('error1',r)
    })


    </script>
</html>